import {
  Controller,
  Get,
  Render,
  Post,
  Body,
  UseInterceptors,
  UploadedFile,
} from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express';
import { createWriteStream } from 'fs';
import { join } from 'path';

@Controller('upload')
export class UploadController {
  @Get()
  @Render('default/upload')
  index() {}

  //   这是上传单个文件的处理方式
  // 文件上传 , 该方法可以上传图片或者是文件夹，如果有需要，可以对文件的后缀名进行处理，限定上传的内容
  @Post('doAdd')
  @UseInterceptors(FileInterceptor('pic'))
  doAdd(@Body() body, @UploadedFile() file) {
    // console.log(body, file); // 上传图片信息，必须在form的数据里面配置enctype = "multipart/form-data"

    // 定义文件存放的路径和名称
    const writeStream = createWriteStream(
      join(__dirname, '../../public/upload', `${file.originalname}`),
    );

    // 在定义的路径下写入流
    writeStream.write(file.buffer);
    return '上传图片成功';
  }
}
